/*
 * Vector2.h
 *
 *  Created on: 02-11-2012
 *
 */

#ifndef VECTOR2_H_
#define VECTOR2_H_

template <typename TYPE>
struct Vector2
{
    TYPE x, y;

    Vector2();
    Vector2(TYPE x, TYPE y);

    TYPE 					dot				(Vector2<TYPE> &other);
    Vector2<TYPE>& 			normalize		();

    static Vector2<TYPE> 	getUnitX		();
    static Vector2<TYPE>	getUnitY		();
};

template <typename TYPE>
Vector2<TYPE> operator+(const Vector2<TYPE>& a, const Vector2<TYPE>& b);

#endif /* VECTOR2_H_ */
